import 'package:enjoy_plus_three/pages/home/index.dart';
import 'package:enjoy_plus_three/pages/mine/index.dart';
import 'package:enjoy_plus_three/utils/token.dart';
import 'package:flutter/material.dart';

class TabBarPage extends StatefulWidget {
  const TabBarPage({super.key});

  @override
  State<TabBarPage> createState() => _TabBarPageState();
}

class _TabBarPageState extends State<TabBarPage> {
  // 记录当前索引
  int currentIndex = 0;

  @override
  void initState() {
    super.initState();
    //需求：“先”初始化仓库之后 Future,“再”需要去做一些其他的事情
    // initData();

    //Future.delayed 本质就是创建了Future实例
    //延迟执行
    //场景：执行异步任务，提供任务完成后的结果（失败 ｜ 成功）
    Future.delayed(Duration.zero,()async{
      await TokenManager().init();
      //去做其他的事情
    });
  }

  // initData() async{
  //   await TokenManager().init();
  //   //去做其他的事情
  // }

  // 底部TabBar数据
  List tabBarList = [
    {
      "title": "首页",
      "default": "assets/tabs/home_default.png",
      "active": "assets/tabs/home_active.png"
    },
    {
      "title": "我的",
      "default": "assets/tabs/my_default.png",
      "active": "assets/tabs/my_active.png"
    }
  ];

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: SafeArea(
          child: IndexedStack(
        index: currentIndex,
        children: const [HomePage(), MinePage()],
      )),
      bottomNavigationBar: BottomNavigationBar(
          // 设置选
          items: barItemList(),
          // 设置选中索引
          currentIndex: currentIndex,
          // 设置选中颜色
          selectedItemColor: Colors.red,
          // 设置未选中颜色
          unselectedItemColor: Colors.black38,
          onTap: (index) {
            setState(() {
              currentIndex = index;
            });
          }),
    );
  }

  List<BottomNavigationBarItem> barItemList() {
    List<BottomNavigationBarItem> items = [];
    for (var item in tabBarList) {
      items.add(
        BottomNavigationBarItem(
            // 默认状态的图片
            icon: Image.asset(
              item['default'],
              width: 32,
              height: 32,
            ),
            // 选中状态的图片
            activeIcon: Image.asset(
              item['active'],
              width: 40,
              height: 40,
            ),
            label: item['title']),
      );
    }
    return items;
  }
}
